﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Runtime.Serialization;

namespace AMS.Core.Services
{
    public interface ISessionService
    {
        // TODO: Separate this into ISessionStarter and ISessionChecker

        TimeSpan Timeout { get; set; }

        event EventHandler<TimeoutEventArgs> TimedOut;

        object StartSession(string identifier);

        bool HasSession(string identifier);

        //object GetSessionVariable(string identifier);

        //object ResetSession(string identifier, object sessionVariable);

        bool IsValidSession(string identifier, object sessionVariable);

        bool IsValidSession(object sessionVariable);

        void UpdateSession(object sessionVariable);

        void EndSession(object sessionVariable);

        string ResolveIdentifier(object sessionVariable);
    }
}
